package com.me.crgame.escenas.menu;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.me.crgame.core.ActorTouchListener;
import com.me.crgame.core.EnumEscena;
import com.me.crgame.core.EnumTransicion;
import com.me.crgame.core.Escena;
import com.me.crgame.core.actores.ActorButton;
import com.me.crgame.core.actores.ActorButtonAnimado;
import com.me.crgame.core.actores.ActorLabel;


public class EscenaCreditos extends Escena implements ActorTouchListener {

	ActorLabel nombre1;
	ActorLabel nombre2;
	ActorButtonAnimado opcionAtras;
	ActorLabel mensaje;
	BitmapFont fuente;
	Sprite planetaSprite;
	

	public EscenaCreditos() {
		super();
		
		fuente = new BitmapFont(Gdx.files.internal("data/sistema_menus/monofonto34.fnt"), false);	
		super.setBackground("data/sistema_menus/menu_principal/creditos/background_aventura.png");
		nombre1 = new ActorLabel("data/sistema_menus/menu_principal/creditos/planeta.png", "RICARDO", fuente);
		nombre2 = new ActorLabel("data/sistema_menus/menu_principal/creditos/planeta.png", "CARLOS", fuente);
		mensaje = new ActorLabel("data/sistema_menus/menu_principal/creditos/planeta.png", "CREDITOS", fuente);
		opcionAtras = new ActorButtonAnimado("data/sistema_menus/menu_principal/creditos/animation_sheet.png", this, 5, 6);

		float ancho = super.getWidth();
		float alto = super.getHeight();
		nombre1.setX(ancho / 2f);
		nombre1.setY(alto * (1f / 3f));
		nombre2.setX(ancho / 2f);
		nombre2.setY(alto * (2f / 3f));
		mensaje.setX(ancho - (mensaje.getWidth() / 2));
		mensaje.setY(0);

		opcionAtras.setX(ancho - opcionAtras.getWidth());
		opcionAtras.setY(0);

		super.addActor(nombre1);
		super.addActor(nombre2);
		super.addActor(mensaje);
		super.addActor(opcionAtras);
		
		planetaSprite = new Sprite((new Texture(Gdx.files.internal("data/sistema_menus/menu_principal/creditos/planeta.png"))));
		planetaSprite.setX(0);
		planetaSprite.setY(alto/2f);
		
		opcionAtras.setOrigin(opcionAtras.getWidth()/2, opcionAtras.getHeight()/2);
	}

	@Override
	protected void empiezaLaEscena() {
		
		//Aqui van las actions
	}

	@Override
	protected void empiezaLaEscena(int transitionMode) {
	}

	@Override
	protected void terminaLaEscena() {
		// TODO Auto-generated method stub

	}

	@Override
	protected void pause(boolean gamePaused) {
		// TODO Auto-generated method stub

	}

	@Override
	protected void update(float deltaTime) {
		
		mensaje.setX(mensaje.getX() - (deltaTime * 250));
		if (mensaje.getX() < -mensaje.getWidth())
			mensaje.setX(getWidth());
		
		planetaSprite.rotate((float) Math.PI*2);
		opcionAtras.rotate((float) Math.PI*2);

	}
	
	
	//Para pintar sprites hace falta sobreescribir render
	@Override protected void render(float deltaTime){
		super.render(deltaTime);//dibuja a los actores
		drawSprite(planetaSprite, 1f);
	}

	@Override
	public boolean touchDown(ActorButton actor, float x, float y, int pointer) {
		if (actor == opcionAtras) {
			sonidoBotonPulsado.play();
			activarVibracion(VIBRACIOM_CORTA);
			cambiarEscena(EnumEscena.MENU_PRINCIPAL, EnumTransicion.BLACK);
		}
		return true;
	}

	@Override
	public void touchDragged(ActorButton actor, float x, float y, int pointer) {
	}

	@Override
	public void touchUp(ActorButton actor, float x, float y, int pointer) {
	}

}
